<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Calendaring Class : คู่มือการใช้งาน CodeIgniter</title>

<style type="text/css" media="all">@import url('../userguide.css');</style>
<link rel="stylesheet" type="text/css" media="all" href="../userguide.css" />
<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>
<meta http-equiv="expires" content="-1" />
<meta http-equiv="pragma" content="no-cache" />
<meta name="robots" content="all" />
<meta name="author" content="ExpressionEngine Dev Team" />
<meta name="description" content="CodeIgniter User Guide" />
</head>

<body>
<!-- START NAVIGATION -->
<div id="nav">
<div id="nav_inner">
<script type="text/javascript">create_menu('../');</script></div>
</div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker_th.jpg" title="Toggle Table of Contents" alt="Toggle Table of Contents" border="0" height="43" width="154" /></a></div>
<div id="masthead">
<table style="width: 100%;" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<h1>คู่มือการใช้งาน CodeIgniter เวอร์ชั่น 1.7.2</h1>
</td>
<td id="breadcrumb_right"><a href="../toc.html">หน้าตารางเนื้อหา</a></td>
</tr>
</tbody>
</table>
</div>
<!-- END NAVIGATION -->
<!-- START BREADCRUMB -->
<table style="width: 100%;" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td id="breadcrumb">
<a href="http://codeigniter.in.th/">CodeIgniter.in.th</a>
&nbsp;›&nbsp;
<a href="../index.html">หน้าหลักคู่มือการใช้งาน</a>
&nbsp;›&nbsp;
Calendaring Class
</td>
<td id="searchbox">
<form method="get" action="http://www.google.com/search"><input name="as_sitesearch" id="as_sitesearch" value="codeigniter.in.th/user_guide/" type="hidden" />ค้นหาคู่มือการใช้งาน&nbsp;
<input class="input" style="width: 200px;" name="q" id="q" size="31" maxlength="255" value="" type="text" />&nbsp;<input class="submit" name="sa" value="ค้นหา" type="submit" /></form>
</td>
</tr>
</tbody>
</table>
<!-- END BREADCRUMB -->
<br clear="all" />
<!-- START CONTENT -->
<div id="content">
<h1>Calendaring Class</h1>
<p>Calendar class ทำให้คุณสามารถสร้างปฎิทินแบบไดนามิค
ปฎิทินของคุณสามารถจัดรูปแบบได้ โดยการใช้แม่แบบปฎิทิน
โดยคุณสามารถควบคุมมันได้ 100% ในทุกๆการออกแบบ
ยิ่งไปกว่านั้นคุณสามารถส่งข้อมูลไปยังช่องปฎิทินได้อีกด้วย</p>
<h2>เริ่มต้นใช้คลาส</h2>
<p>เหมือนคลาสอื่นๆของ CodeIgniter คลาส Calendar
นั้นเริ่มต้นได้ในตัวบควมคุม(controller) โดยใช้ฟังก์ชัน <dfn>$this-&gt;load-&gt;library</dfn>
<code>$this-&gt;load-&gt;library('calendar');</code></p>
<p>เมื่อโหลดแล้วคุณสามารถใช้ออบเจ็คปฎิทินได้โดยการใช้ <dfn>$this-&gt;calendar</dfn></p>
<h2>แสดงปฎิทิน</h2>
<p>ตัวอย่างง่ายๆในการโชว์ปฎิทิน</p>
<code>$this-&gt;load-&gt;library('calendar');<br />
<br />
echo $this-&gt;calendar-&gt;generate();</code>
<p>โค้ดด้านบนจะสร้างปฎิทินจากเดือน/ปีปัจจุบันโดยขึ้นอยู่กับเวลาทางเซิร์ฟเวอร์ของคุณ
ในการโชว์ปฎิทินจากเดือนและปีที่กำหนดจะต้องส่งข้อมูลผ่านฟังก์ชันสร้างอันนี้</p>
<code>$this-&gt;load-&gt;library('calendar');<br />
<br />
echo $this-&gt;calendar-&gt;generate(<kbd>2006</kbd>,
<kbd>6</kbd>);</code>
<p>โค้ดด้านบนจะสร้างปฎิทินที่โชว์เดือนมิถุนายนในปี ค.ศ. 2006
โดยพารามิเตอร์ตัวแรกคือปี ส่วนตัวที่สองคือเดือน</p>
<h2>ส่งข้อมูลไปยังช่องปฎิทิน</h2>
<p>ในการเพิ่มข้อมูลไปยังช่องปฎิทินของคุณนั้นเกี่ยวข้องกับการสร้างอาเรย์ซึ่งคีย์จะเป็นวันที่ซึ่งคุณต้องการให้มีค่าอยู่ภายในนั้น
ซึ่งอาเรย์จะถูกส่งไปยังพารามิเตอร์ที่สามของฟังก์ชันสร้างปฎิทิน
ลองพิจารณาตัวอย่างนี้ครับ<code>$this-&gt;load-&gt;library('calendar');<br />
<br />
$data = array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3
=&gt; 'http://example.com/news/article/2006/03/',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7
=&gt; 'http://example.com/news/article/2006/07/',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13
=&gt; 'http://example.com/news/article/2006/13/',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;26
=&gt; 'http://example.com/news/article/2006/26/'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
<br />
echo $this-&gt;calendar-&gt;generate(<kbd>2006</kbd>,
<kbd>6</kbd>, <var>$data</var>);</code></p>
<p>การใช้ตัวอย่างด้านบน วันที่ 3, 7, 13, และ 26
จะกลายเป็นลิงค์ซึ่งเมื่อกดแล้วจะชี้ไปยัง URL ที่ใส่ไว้</p>
<p class="important"><strong>ข้อสังเกตุ:</strong>
โดยปกติแล้วมันจะคิดว่าอาเรย์ของคุณใส่ลิงค์เอาไว้
ในส่วนด้านล่างที่อธิบายแม่แบบปฎิทิน
คุณจะเห็นว่ามันปรับแต่งข้อมูลที่ถูกส่งในแจ่ละช่องอย่างไร
ดังนั้นคุณสามารถส่งข้อมูลได้หลายแบบแล้วแต่คุณต้องการ</p>
<h2>สิทธิในการตั้งค่าแสดงผล</h2>
<p>มีสิทธิ 7
อย่างที่คุณสามารถตั้งค่าเพื่อควบคุมลักษณะของปฎิทินได้
สิทธิต่างๆจะถูกตั้งค่าในอาเรย์ของสิทธิซึ่งอยู่พารามิเตอร์ที่สองของฟังก์ชัน
load และนี้คือตัวอย่าง</p>
<code>$prefs = array (<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'start_day'&nbsp;&nbsp;&nbsp;
=&gt; 'saturday',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'month_type'&nbsp;&nbsp;
=&gt; 'long',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'day_type'&nbsp;&nbsp;&nbsp;&nbsp;
=&gt; 'short'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
<br />
$this-&gt;load-&gt;library('calendar', $prefs);<br />
<br />
echo $this-&gt;calendar-&gt;generate();</code>
<p>โค้ดด้านบนจะให้วันเริ่มต้นคือวันเสาร์ใช้คำว่า "long"
เพื่อให้ชื่อเดือนเป็นแบบยาว และคำว่า "short" เพื่อให้ชื่อวันเป็นแบบสั้น
ข้อมูลเพิ่มเติมเกี่ยวกับสิทธิอยู่ด้านล่างนี้แล้ว</p>
<table style="width: 100%;" class="tableborder" border="0" cellpadding="0" cellspacing="1">
<tbody>
<tr>
<th>สิทธิ</th>
<th>ค่าปกติ&nbsp;</th>
<th>ทางเลือก</th>
<th>คำอธิบาย</th>
</tr>
<tr>
<td class="td"><strong>template</strong></td>
<td class="td">ไม่มี</td>
<td class="td">ไม่มี</td>
<td class="td">สตริงจะเก็บค่าแม่แบบปฎิทินของคุณ
ดูหมวดแม่แบบด้านล่าง</td>
</tr>
<tr>
<td class="td"><strong>local_time</strong></td>
<td class="td">time()</td>
<td class="td">ไม่มี</td>
<td class="td">Unix timestamp
ซึ่งสัมพันธ์กับเวลาปัจจุบัน</td>
</tr>
<tr>
<td class="td"><strong>start_day</strong></td>
<td class="td">sunday</td>
<td class="td">วันใดๆของสัปดาห์ (sunday, monday,
tuesday, etc.)</td>
<td class="td">ตั้งค่าวันของสัปดาห์ที่จะเป็นเริ่มต้นของปฎิทิน</td>
</tr>
<tr>
<td class="td"><strong>month_type</strong></td>
<td class="td">long</td>
<td class="td">long, short</td>
<td class="td">กำหนดเวอร์ชั่นของชื่อเดือนที่ใช้บนส่วนหัว
long = January, short = Jan.</td>
</tr>
<tr>
<td class="td"><strong>day_type</strong></td>
<td class="td">abr</td>
<td class="td">long, short, abr</td>
<td class="td">กำหนดเวอร์ชั่นของชื่อวันในสัปดาห์ที่ใช้บนช่องหัวแถว
long = Sunday, short = Sun, abr = Su.</td>
</tr>
<tr>
<td class="td"><strong>show_next_prev</strong></td>
<td class="td">FALSE</td>
<td class="td">TRUE/FALSE (boolean)</td>
<td class="td">กำหนดว่าจะโชว์ลิงค์ไปเดือนก่อน/ถัดไป
ดูข้อมูลเพิ่มเติมด้านล่าง</td>
</tr>
<tr>
<td class="td"><strong>next_prev_url</strong></td>
<td class="td">None</td>
<td class="td">URL</td>
<td class="td">ตั้งค่า basepath ที่จะใช้ในปฎิทิน
ลิงค์ถัดไป/ก่อน</td>
</tr>
</tbody>
</table>
<h2>แสดงลิงค์เดือน ถัดไป/ก่อนหน้า</h2>
<p>เพื่อให้ปฎิทินของคุณสามารถไปยังเดือนถัดไปหรือก่อนหน้าได้จากลิงค์
ถัดไป/ก่อนหน้า(next/previous)
คุณจะต้องสร้างโค้ดปฎิทินขึ้นคล้ายตัวอย่างต่อไปนี้</p>
<code>$prefs = array (<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'show_next_prev'&nbsp;&nbsp;=&gt;
TRUE,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'next_prev_url'&nbsp;&nbsp;
=&gt; 'http://example.com/index.php/calendar/show/'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
<br />
$this-&gt;load-&gt;library('calendar', $prefs);<br />
<br />
echo $this-&gt;calendar-&gt;generate(<var>$this-&gt;uri-&gt;segment(3)</var>,
<var>$this-&gt;uri-&gt;segment(4)</var>);</code>
<p>คุณจะสังเกตุสองสามอย่างได้เกี่ยวกับตัวอย่างนี้</p>
<ul>
<li>คุณจะต้องตั้งค่า "show_next_prev" เป็น TRUE.</li>
<li>คุณต้องใส่ URL ของตัวควบคุม(controller) ลงไปยังสิทธิ
"next_prev_url" ปฎิทินของคุณ</li>
<li>คุณต้องใส่&nbsp;"ปี" และ "เดือน" ในฟังก์ชันสร้างปฎิทิน
จาก URI segments (URI แยกส่้วน) ที่ปรากฎขึ้น (ข้อสังเกตุ: Calendar
class เพิ่มปี/เดือนอย่างอัตโนมัติตาม URL ที่คุณให้)</li>
</ul>
<h2>สร้างแม่แบบปฎิทิน</h2>
<p>การสร้างแม่แบบปฎิทินคุณสามารถควบคุมการออกแบบปฎิทินได้ 100%
แต่ละส่วนประกอบของปฎิทินจะถูกวางเป็นคู่กับตัวแปรเทียบ
ที่จะโชว์ดังต่อไปนี้</p>
<code>
$prefs['template'] = '<br />
<br />
&nbsp;&nbsp;&nbsp;<dfn>{table_open}</dfn><var>&lt;table
border="0" cellpadding="0" cellspacing="0"&gt;</var><dfn>{/table_open}</dfn><br />
<br />
&nbsp;&nbsp;&nbsp;<dfn>{heading_row_start}</dfn><var>&lt;tr&gt;</var><dfn>{/heading_row_start}</dfn><br />
<br />
&nbsp;&nbsp;&nbsp;<dfn>{heading_previous_cell}</dfn><var>&lt;th&gt;&lt;a
href="</var><kbd>{previous_url}</kbd><var>"&gt;&amp;lt;&amp;lt;&lt;/a&gt;&lt;/th&gt;</var><dfn>{/heading_previous_cell}</dfn><br />
&nbsp;&nbsp;&nbsp;<dfn>{heading_title_cell}</dfn><var>&lt;th
colspan="</var><kbd>{colspan}</kbd><var>"&gt;</var><kbd>{heading}</kbd><var>&lt;/th&gt;</var><dfn>{/heading_title_cell}</dfn><br />
&nbsp;&nbsp;&nbsp;<dfn>{heading_next_cell}</dfn><var>&lt;th&gt;&lt;a
href="</var><kbd>{next_url}</kbd><var>"&gt;&amp;gt;&amp;gt;&lt;/a&gt;&lt;/th&gt;</var><dfn>{/heading_next_cell}</dfn><br />
<br />
&nbsp;&nbsp;&nbsp;<dfn>{heading_row_end}</dfn><var>&lt;/tr&gt;</var><dfn>{/heading_row_end}</dfn><br />
<br />
&nbsp;&nbsp;&nbsp;<dfn>{week_row_start}</dfn><var>&lt;tr&gt;</var><dfn>{/week_row_start}</dfn><br />
&nbsp;&nbsp;&nbsp;<dfn>{week_day_cell}</dfn><var>&lt;td&gt;</var><dfn>{week_day}</dfn><var>&lt;/td&gt;</var><dfn>{/week_day_cell}</dfn><br />
&nbsp;&nbsp;&nbsp;<dfn>{week_row_end}</dfn><var>&lt;/tr&gt;</var><dfn>{/week_row_end}</dfn><br />
<br />
&nbsp;&nbsp;&nbsp;<dfn>{cal_row_start}</dfn><var>&lt;tr&gt;</var><dfn>{/cal_row_start}</dfn><br />
&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_start}</dfn><var>&lt;td&gt;</var><dfn>{/cal_cell_start}</dfn><br />
<br />
&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_content}</dfn><var>&lt;a
href="</var><kbd>{content}</kbd><var>"&gt;</var><kbd>{day}</kbd><var>&lt;/a&gt;</var><dfn>{/cal_cell_content}</dfn><br />
&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_content_today}</dfn><var>&lt;div
class="highlight"&gt;&lt;a href="</var><kbd>{content}</kbd><var>"&gt;</var><kbd>{day}</kbd><var>&lt;/a&gt;&lt;/div&gt;</var><dfn>{/cal_cell_content_today}</dfn><br />
<br />
&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_no_content}</dfn><var><kbd>{day}</kbd></var><dfn>{/cal_cell_no_content}</dfn><br />
&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_no_content_today}</dfn><var>&lt;div
class="highlight"&gt;</var><kbd>{day}</kbd><var>&lt;/div&gt;</var><dfn>{/cal_cell_no_content_today}</dfn><br />
<br />
&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_blank}</dfn><var>&amp;nbsp;</var><dfn>{/cal_cell_blank}</dfn><br />
<br />
&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_end}</dfn><var>&lt;/td&gt;</var><dfn>{/cal_cell_end}</dfn><br />
&nbsp;&nbsp;&nbsp;<dfn>{cal_row_end}</dfn><var>&lt;/tr&gt;</var><dfn>{/cal_row_end}</dfn><br />
<br />
&nbsp;&nbsp;&nbsp;<dfn>{table_close}</dfn><var>&lt;/table&gt;</var><dfn>{/table_close}</dfn><br />
';<br />
<br />
$this-&gt;load-&gt;library('calendar', $prefs);<br />
<br />
echo $this-&gt;calendar-&gt;generate();</code>
</div>
<!-- END CONTENT -->
<div id="footer">
<p>หัวข้ออันก่อน:&nbsp;&nbsp;<a href="benchmark.html">Benchmarking
Class</a>
&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;
<a href="#top">บนสุดของหน้า</a>&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;
<a href="../index.html">หน้าหลักคู่มือการใช้งาน</a>&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;
หัวข้อถัดไป:&nbsp;&nbsp;<a href="cart.html">Cart
Class</a>
</p>
<p>คู่มือการใช้งาน CodeIgniter นี้ได้ทำการคัดลอกและดัดแปลงจาก <a href="http://codeigniter.com/user_guide/">CodeIgniter User
Guide</a></p>
<p><a href="http://codeigniter.com">CodeIgniter</a>
· Copyright © 2006-2009 · <a href="http://ellislab.com/">Ellislab,
Inc.</a>
</p>
</div>
</body></html>